.TH std::uniform_int_distribution 3 "2024.06.10" "http://cppreference.com" "C++ Standard Libary"
.SH NAME
std::uniform_int_distribution \- std::uniform_int_distribution

.SH Synopsis
   Defined in header <random>
   template< class IntType = int >  \fI(since C++11)\fP
   class uniform_int_distribution;

   Produces random integer values \\(\\small i\\)i, uniformly distributed on the closed
   interval \\(\\small[a, b]\\)[a, b], that is, distributed according to the discrete
   probability function

   \\({\\small P(i|a,b) =}\\frac{1}{b - a + 1}\\)P(i|a,b) =

   1
   b − a + 1

   .

   std::uniform_int_distribution satisfies all requirements of
   RandomNumberDistribution.

.SH Template parameters

             The result type generated by the generator. The effect is undefined if
   IntType - this is not one of short, int, long, long long, unsigned short, unsigned
             int, unsigned long, or unsigned long long.

.SH Member types

   Member type         Definition
   result_type \fI(C++11)\fP IntType
   param_type \fI(C++11)\fP  the type of the parameter set, see RandomNumberDistribution.

.SH Member functions

   constructor   constructs new distribution
   \fI(C++11)\fP       \fI(public member function)\fP
   reset         resets the internal state of the distribution
   \fI(C++11)\fP       \fI(public member function)\fP
.SH Generation
   operator()    generates the next random number in the distribution
   \fI(C++11)\fP       \fI(public member function)\fP
.SH Characteristics
   a             returns the distribution parameters
   b             \fI(public member function)\fP
   \fI(C++11)\fP
   param         gets or sets the distribution parameter object
   \fI(C++11)\fP       \fI(public member function)\fP
   min           returns the minimum potentially generated value
   \fI(C++11)\fP       \fI(public member function)\fP
   max           returns the maximum potentially generated value
   \fI(C++11)\fP       \fI(public member function)\fP

.SH Non-member functions

   operator==
   operator!=                compares two distribution objects
   \fI(C++11)\fP                   \fI(function)\fP
   \fI(C++11)\fP(removed in C++20)
   operator<<                performs stream input and output on pseudo-random number
   operator>>                distribution
   \fI(C++11)\fP                   \fI(function template)\fP

.SH Example

   This program simulates throwing 6-sided dice.


// Run this code

 #include <iostream>
 #include <random>

 int main()
 {
     std::random_device rd;  // a seed source for the random number engine
     std::mt19937 gen(rd()); // mersenne_twister_engine seeded with rd()
     std::uniform_int_distribution<> distrib(1, 6);

     // Use distrib to transform the random unsigned int
     // generated by gen into an int in [1, 6]
     for (int n = 0; n != 10; ++n)
         std::cout << distrib(gen) << ' ';
     std::cout << '\\n';
 }

.SH Possible output:

 1 1 6 5 2 2 5 5 6 2
